
package com.wwy.monitor.mapper.tddl;

import com.wwy.monitor.model.tddl.dto.MonitorTaskDTO;
import com.wwy.monitor.model.tddl.query.MonitorTaskQuery;
import com.wwy.monitor.model.tddl.vo.MonitorTaskVo;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.List;

/**
 * @author long.Wanheng
 * @version V1.00
 * @createDate 2019/10/30
 */
@Repository
public interface MonitorTaskMapper {
    /**
     * æ¥è¯¢çæ§ä»»å¡æ°æ®
     *
     * @param monitorTaskQuery æ¥è¯¢æ¡ä»¶
     * @return çæ§ä»»å¡æ°æ®ç»æé
     */
    List<MonitorTaskDTO> queryMonitorTask(@Param("monitorTaskQuery") MonitorTaskQuery monitorTaskQuery);

    /**
     * æ ¹æ®åºç¨idåæ­¢å®æ¶ä»»å¡
     *
     * @param appId åºç¨id
     * @return åæ­¢ä»»å¡æ¡æ°
     */
    int stopTaskByAppId(Long appId);

    int addBatchMonitorTask(@Param("list") List<MonitorTaskDTO> list);

    /**
     * æ·»å taskä»»å¡
     *
     * @param dto taskå®ä½ç±»
     * @return æ·»å æ¡æ°
     */
    int addMonitorTask(MonitorTaskDTO dto);

    MonitorTaskVo queryMonitorTaskByType(@Param("configType") Integer configType);

    /**
     * æ ¹æ®idè·åtaskè¯¦æ
     *
     * @param id ä¸»é®id
     * @return taskè¯¦æ
     */
    MonitorTaskDTO selectById(Long id);

    int updateTaskStatusById(MonitorTaskVo monitorTaskVo);

    Integer queryMonitorCountTaskByType(@Param("configType") Integer configType);

    /**
     * æ ¹æ®idé»è¾å é¤
     *
     * @param id ä¸»é®id
     * @return é»è¾å é¤æ¡æ°
     */
    int deleteById(Long id);

    int queryMonitorTaskCount(@Param("monitorTaskQuery") MonitorTaskQuery query);
}
